/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;
import java.io.Serializable;
import java.util.ArrayList;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
/**
 *
 * @author Elias Mendoza
 */
@Entity
@Table(name="grupo")
public class Grupo implements Serializable{
  @Id
  @GeneratedValue(strategy= GenerationType.IDENTITY)
  private int id;
  @Column(nullable=false)
  private char grupo;
  
  //**********Estableciendo la relacion M:1 entre grupo y sustrato(muchos grupos a un sustrato)
  @JoinColumn(name="id_sustrato",referencedColumnName="id",nullable=false)
  @ManyToOne
  private Sustrato sustrato;
  //******************************************************************************************
  //**********Estableciendo relacion 1:M entre grupo y grupo_sensor(un grupo  muchos grupo_sensor )
  @OneToMany(cascade= CascadeType.ALL,mappedBy="grupo")
  private List<GrupoSensor> grupoSensor= new ArrayList<GrupoSensor>();
  //***********************************************************************************************
  
  public Grupo() {
  }

  public Sustrato getSustrato() {
    return sustrato;
  }

  public void setSustrato(Sustrato sustrato) {
    this.sustrato = sustrato;
  }

  public List<GrupoSensor> getGrupoSensor() {
    return grupoSensor;
  }

  public void setGrupoSensor(List<GrupoSensor> grupoSensor) {
    this.grupoSensor = grupoSensor;
  }
  

  public char getGrupo() {
    return grupo;
  }

  public void setGrupo(char grupo) {
    this.grupo = grupo;
  }

  public int getId() {
    return id;
  }

   @Override
  public String toString() {
    return "Grupo{" + "id=" + id + ", grupo=" + grupo + ", sustrato=" + sustrato + ", grupoSensor=" + grupoSensor + '}';
  }

  @Override
  public boolean equals(Object obj) {
    if (obj == null) {
      return false;
    }
    if (getClass() != obj.getClass()) {
      return false;
    }
    final Grupo other = (Grupo) obj;
    if (this.id != other.id) {
      return false;
    }
    if (this.grupoSensor != other.grupoSensor && (this.grupoSensor == null || !this.grupoSensor.equals(other.grupoSensor))) {
      return false;
    }
    return true;
  }

  @Override
  public int hashCode() {
    int hash = 7;
    hash = 97 * hash + this.id;
    hash = 97 * hash + (this.grupoSensor != null ? this.grupoSensor.hashCode() : 0);
    return hash;
  }

  

 
}
